from appium import webdriver

from base.base_page import BasePage



class WeComApp(BasePage):

    def start(self):
        # capability配置参数
        caps = {}
        # 设置app的平台（Android、iOS）
        caps["platformName"] = "android"
        # appium请求等待最长时间，默认为60s，是appium发送请求的最大间隔时间
        caps["appium:newCommandTimeout"] = 3600
        # 设置idle状态的超时时间 在整个driver中起作用 默认值 10*1000毫秒
        caps['settings[waitForIdleTimeout]'] = 0
        # 设备的名字 自定义
        caps["appium:deviceName"] = "wework"
        # 设置app的包名
        caps["appium:appPackage"] = "com.tencent.wework"
        # 设置app启动页
        caps["appium:appActivity"] = ".launch.LaunchSplashActivity"
        # 不清空缓存启动app 如果不设置会导致所有信息全部清空 False：清空app缓存
        caps["appium:noReset"] = "true"
        # 不重启 app
        caps['dontStopAppOnReset'] = 'true'

        # capability配置要在连接之前进行
        # client 与 server 端建立 连接的代码
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
        # 设置隐式等待时间
        self.driver.implicitly_wait(self.IMPLICITLY_WAIT)

        return self

    def restart(self):
        # 关闭 app
        self.driver.close()
        # 激活后台运行的app
        self.driver.activate_app("com.tencent.wework")  # 包名
        return self

    def stop(self):
        self.driver.quit()

    def back(self):
        self.driver.back()

    def goto_main_page(self):
        from wework_app_po.page.main_page import MainPage
        return MainPage(self.driver)
